﻿//
// 请注意：bbsmax 不是一个免费产品，源代码仅限用于学习，禁止用于商业站点或者其他商业用途
// 如果您要将bbsmax用于商业用途，需要从官方购买商业授权，得到授权后可以基于源代码二次开发
//
// 版权所有 厦门麦斯网络科技有限公司
// 公司网站 www.bbsmax.com
//

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;
using MaxLabs.bbsMax.DataAccess;
using MaxLabs.bbsMax.Enums;

namespace MaxLabs.bbsMax.Entities
{
    public class BannedUser : ITimeLimit, IPrimaryKey<long>, IFillSimpleUser
    {
        public BannedUser()
        {
        }

        public BannedUser(DataReaderWrap wrap)
        {
            this.EndDate = wrap.Get<DateTime>("EndDate");
            this.BeginDate = wrap.Get<DateTime>("BeginDate");
            this.ForumID = wrap.Get<int>("ForumID");
            this.Cause = wrap.Get<string>("Cause");
            this.UserID = wrap.Get<int>("UserID");
        }

        public int UserID { get; set; }

        public int ForumID { get; set; }

        public string Cause { get; set; }

        public DateTime EndDate { get; set; }

        public SimpleUser User
        {
            get { return UserBO.Instance.GetFilledSimpleUser(UserID); }
        }

        #region ITimeLimit 成员

        public DateTime BeginDate
        {
            get;
            set;
        }

        #endregion

        #region IPrimaryKey<long> 成员

        public long GetKey()
        {
            return this.ForumID * 1000000000 + this.UserID;
        }

        #endregion

        #region IFillSimpleUser 成员

        public int GetUserIDForFill()
        {
            return UserID;
        }

        #endregion
    }

    public class BannedUserCollection : HashedTimeLimitCollectionBase<long, BannedUser, BannedUserCollection>
    {
        public BannedUserCollection()
        {

        }

        public BannedUserCollection(DataReaderWrap wrap)
        {
            while (wrap.Next)
            {
                Add(new BannedUser(wrap));
            }
        }

        //public bool ContainUser(int userID)
        //{
        //    //foreach (BannedUser b in this)
        //    //{
        //    //    if (b.UserID == userID)
        //    //        return true;
        //    //}

        //    //return false;
        //}
    }
}